package com.huaxindata.im.main.manager;

import android.content.Context;

import com.huaxindata.im.model.contact.Contact;
import com.huaxindata.im.model.db.ContactStore;
import com.huaxindata.im.model.db.MessageStore;
import com.huaxindata.im.model.entity.ChatMessage;

import java.util.List;

/**
 * Created by Administrator on 2017/8/16.
 * 历史聊天记录的管理类，提供如下功能
 * 1、查询要显示在历史聊天记录列表中的联系人
 * 2、每个联系人的未读消息数
 * 3、每个联系人的最近的一次消息记录
 */

public class HistoryContactManager {
    private static List<Contact> sHistoryContactList;
    public static void init(Context context){
        ContactStore.init(context);
    }
    /**
     * 从数据库中查找需要显示消息记录的联系人
     */
    public static List<Contact> getHistoryContactList(){
        sHistoryContactList=ContactStore.queryAllContact();
        return sHistoryContactList;
    }
    /**
     * 获取两个联系人之间最新的一条消息,不论有没有读
     * @param id1
     * @param id2
     * @return
     */
    public static ChatMessage getRecentMessage(String id1, String id2){
        return MessageStore.queryRecentMessage(id1, id2);
    }
    public static ChatMessage getRecentMessageFromGroup(String groupId){
        return MessageStore.queryRecentMessageFromGroup(groupId);
    }
    public static int getUnReadCount(String id1,String id2){
        return MessageStore.queryUnReadByClientId(id1, id2);
    }
    public static int getUnreadCountFromGroup(String groupId){
        return MessageStore.queryUnreadCountFromGroup(groupId);
    }
    public static int getTotalUnreadCount(){
        return MessageStore.queryTotalUnreadCount();
    }
    /**
     * 在消息界面滑动删除不显示该聊天记录,但并不是删除了消息记录
     * 1表示不显示，0表示显示
     */
    public static void hideChatHistory(String id){
        ContactStore.updateShow(id,1);
    }

    /**
     * 从历史联系人库中将其删除
     */
    public static void deleteHistory(String id){
        ContactStore.delete(id);
    }
}
